{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "d047cdf7",
   "metadata": {},
   "source": [
    "## 1. APP U本位合约交易-限单价平仓函数总览"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b17b2cef",
   "metadata": {},
   "source": [
    "|方法|解释|\n",
    "|:---|:---|\n",
    "|close_limit|限价单平仓|"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ae6d250f",
   "metadata": {},
   "source": [
    "## 2. 模型实例化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "9741974b",
   "metadata": {},
   "outputs": [],
   "source": [
    "from binance_interface.app import BinanceUM\n",
    "from pprint import pprint"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "3c8eeb90",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 转发：需搭建转发服务器，可参考：https://github.com/pyted/binance_resender\n",
    "proxy_host = None\n",
    "key = 'xxxx'\n",
    "secret = 'xxxx'\n",
    "\n",
    "binanceUM = BinanceUM(\n",
    "    key=key, secret=secret,\n",
    "    proxy_host=proxy_host\n",
    ")\n",
    "trade = binanceUM.trade"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "85fcdf2e",
   "metadata": {},
   "source": [
    "## 3. 同步 非堵塞 固定价格平仓"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "82360b34",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'cancel_result': None,\n",
      " 'error_result': None,\n",
      " 'func_param': {'block': False,\n",
      "                'callback': None,\n",
      "                'cancel': True,\n",
      "                'closePrice': 1,\n",
      "                'delay': 0.2,\n",
      "                'errorback': None,\n",
      "                'marginType': 'ISOLATED',\n",
      "                'meta': {},\n",
      "                'newClientOrderId': '',\n",
      "                'newThread': False,\n",
      "                'positionSide': 'LONG',\n",
      "                'quantity': 5,\n",
      "                'symbol': 'MANAUSDT',\n",
      "                'timeout': 60,\n",
      "                'tpRate': None},\n",
      " 'get_order_result': None,\n",
      " 'meta': {},\n",
      " 'request_param': {'newClientOrderId': '',\n",
      "                   'positionSide': 'LONG',\n",
      "                   'price': '1.0000',\n",
      "                   'quantity': '5',\n",
      "                   'side': 'SELL',\n",
      "                   'symbol': 'MANAUSDT',\n",
      "                   'timeInForce': 'GTC',\n",
      "                   'type': 'LIMIT'},\n",
      " 'set_order_result': {'code': 200,\n",
      "                      'data': {'avgPrice': '0.00',\n",
      "                               'clientOrderId': 'XuZpbJy7rFcRB0g2SRre6i',\n",
      "                               'closePosition': False,\n",
      "                               'cumQty': '0',\n",
      "                               'cumQuote': '0.0000',\n",
      "                               'executedQty': '0',\n",
      "                               'goodTillDate': 0,\n",
      "                               'orderId': 10508463159,\n",
      "                               'origQty': '5',\n",
      "                               'origType': 'LIMIT',\n",
      "                               'positionSide': 'LONG',\n",
      "                               'price': '1.0000',\n",
      "                               'priceMatch': 'NONE',\n",
      "                               'priceProtect': False,\n",
      "                               'reduceOnly': True,\n",
      "                               'selfTradePreventionMode': 'NONE',\n",
      "                               'side': 'SELL',\n",
      "                               'status': 'NEW',\n",
      "                               'stopPrice': '0.0000',\n",
      "                               'symbol': 'MANAUSDT',\n",
      "                               'timeInForce': 'GTC',\n",
      "                               'type': 'LIMIT',\n",
      "                               'updateTime': 1706119781731,\n",
      "                               'workingType': 'CONTRACT_PRICE'},\n",
      "                      'msg': ''},\n",
      " 'status': None,\n",
      " 'symbol': 'MANAUSDT'}\n"
     ]
    }
   ],
   "source": [
    "# block = False\n",
    "close_limit3 = trade.close_limit(\n",
    "    symbol='MANAUSDT',  # 产品\n",
    "    marginType='ISOLATED',  # 保证金模式 ISOLATED: 逐仓 CROSSED: 全仓\n",
    "    positionSide='LONG',  # 持仓方向 LONG: 多单 SHORT: 空单\n",
    "    closePrice=1,  # 平仓价格 closePrice 和 tpRate必须填写其中一个\n",
    "    # tpRate=0.1,  # 挂单止盈率\n",
    "    quantity=5,  # 平仓数量（交易货币） \n",
    "    block=False,  # 是否以堵塞的模式\n",
    "    meta={},  # 向回调函数中传递的参数字典\n",
    ")\n",
    "\n",
    "pprint(close_limit3)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "47717029",
   "metadata": {},
   "source": [
    "## 4. 同步 非堵塞 止盈价格平仓"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "f4c0dee0",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'cancel_result': None,\n",
      " 'error_result': None,\n",
      " 'func_param': {'block': False,\n",
      "                'callback': None,\n",
      "                'cancel': True,\n",
      "                'closePrice': None,\n",
      "                'delay': 0.2,\n",
      "                'errorback': None,\n",
      "                'marginType': 'ISOLATED',\n",
      "                'meta': {},\n",
      "                'newClientOrderId': '',\n",
      "                'newThread': False,\n",
      "                'positionSide': 'LONG',\n",
      "                'quantity': 10,\n",
      "                'symbol': 'MANAUSDT',\n",
      "                'timeout': 60,\n",
      "                'tpRate': 0.1},\n",
      " 'get_order_result': None,\n",
      " 'meta': {},\n",
      " 'request_param': {'newClientOrderId': '',\n",
      "                   'positionSide': 'LONG',\n",
      "                   'price': '0.4792',\n",
      "                   'quantity': '10',\n",
      "                   'side': 'SELL',\n",
      "                   'symbol': 'MANAUSDT',\n",
      "                   'timeInForce': 'GTC',\n",
      "                   'type': 'LIMIT'},\n",
      " 'set_order_result': {'code': 200,\n",
      "                      'data': {'avgPrice': '0.00',\n",
      "                               'clientOrderId': '5JYMMCsXzAYWDWBq1ib5RJ',\n",
      "                               'closePosition': False,\n",
      "                               'cumQty': '0',\n",
      "                               'cumQuote': '0.0000',\n",
      "                               'executedQty': '0',\n",
      "                               'goodTillDate': 0,\n",
      "                               'orderId': 10508464580,\n",
      "                               'origQty': '10',\n",
      "                               'origType': 'LIMIT',\n",
      "                               'positionSide': 'LONG',\n",
      "                               'price': '0.4792',\n",
      "                               'priceMatch': 'NONE',\n",
      "                               'priceProtect': False,\n",
      "                               'reduceOnly': True,\n",
      "                               'selfTradePreventionMode': 'NONE',\n",
      "                               'side': 'SELL',\n",
      "                               'status': 'NEW',\n",
      "                               'stopPrice': '0.0000',\n",
      "                               'symbol': 'MANAUSDT',\n",
      "                               'timeInForce': 'GTC',\n",
      "                               'type': 'LIMIT',\n",
      "                               'updateTime': 1706119797646,\n",
      "                               'workingType': 'CONTRACT_PRICE'},\n",
      "                      'msg': ''},\n",
      " 'status': None,\n",
      " 'symbol': 'MANAUSDT'}\n"
     ]
    }
   ],
   "source": [
    "# 设置tpRate = 0.1，止盈率为10%，止盈率以当前最新价格为基准\n",
    "close_limit4 = trade.close_limit(\n",
    "    symbol='MANAUSDT',  # 产品\n",
    "    marginType='ISOLATED',  # 保证金模式 ISOLATED: 逐仓 CROSSED: 全仓\n",
    "    positionSide='LONG',  # 持仓方向 LONG: 多单 SHORT: 空单\n",
    "    # closePrice=10,  # 平仓价格 closePrice 和 tpRate必须填写其中一个\n",
    "    tpRate=0.1,  # 挂单止盈率\n",
    "    quantity=10,  # 平仓数量（交易货币） \n",
    "    block=False,  # 是否以堵塞的模式\n",
    "    meta={},  # 向回调函数中传递的参数字典\n",
    ")\n",
    "\n",
    "pprint(close_limit4)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a545743c",
   "metadata": {},
   "source": [
    "## 5. 同步 堵塞 止盈价格平仓 超时取消"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "18806cf3",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'cancel_result': {'code': 200,\n",
      "                   'data': {'avgPrice': '0.00',\n",
      "                            'clientOrderId': 'DHtoMg7NNgwYNJsQTjkaZw',\n",
      "                            'closePosition': False,\n",
      "                            'cumQty': '0',\n",
      "                            'cumQuote': '0.0000',\n",
      "                            'executedQty': '0',\n",
      "                            'goodTillDate': 0,\n",
      "                            'orderId': 10508471261,\n",
      "                            'origQty': '62',\n",
      "                            'origType': 'LIMIT',\n",
      "                            'positionSide': 'LONG',\n",
      "                            'price': '0.4795',\n",
      "                            'priceMatch': 'NONE',\n",
      "                            'priceProtect': False,\n",
      "                            'reduceOnly': True,\n",
      "                            'selfTradePreventionMode': 'NONE',\n",
      "                            'side': 'SELL',\n",
      "                            'status': 'CANCELED',\n",
      "                            'stopPrice': '0.0000',\n",
      "                            'symbol': 'MANAUSDT',\n",
      "                            'timeInForce': 'GTC',\n",
      "                            'type': 'LIMIT',\n",
      "                            'updateTime': 1706119859003,\n",
      "                            'workingType': 'CONTRACT_PRICE'},\n",
      "                   'msg': ''},\n",
      " 'error_result': None,\n",
      " 'func_param': {'block': True,\n",
      "                'callback': None,\n",
      "                'cancel': True,\n",
      "                'closePrice': None,\n",
      "                'delay': 0.2,\n",
      "                'errorback': None,\n",
      "                'marginType': 'ISOLATED',\n",
      "                'meta': {},\n",
      "                'newClientOrderId': '',\n",
      "                'newThread': False,\n",
      "                'positionSide': 'LONG',\n",
      "                'quantity': 'all',\n",
      "                'symbol': 'MANAUSDT',\n",
      "                'timeout': 5,\n",
      "                'tpRate': 0.1},\n",
      " 'get_order_result': {'code': 200,\n",
      "                      'data': {'avgPrice': '0.00',\n",
      "                               'clientOrderId': 'DHtoMg7NNgwYNJsQTjkaZw',\n",
      "                               'closePosition': False,\n",
      "                               'cumQuote': '0.0000',\n",
      "                               'executedQty': '0',\n",
      "                               'goodTillDate': 0,\n",
      "                               'orderId': 10508471261,\n",
      "                               'origQty': '62',\n",
      "                               'origType': 'LIMIT',\n",
      "                               'positionSide': 'LONG',\n",
      "                               'price': '0.4795',\n",
      "                               'priceMatch': 'NONE',\n",
      "                               'priceProtect': False,\n",
      "                               'reduceOnly': True,\n",
      "                               'selfTradePreventionMode': 'NONE',\n",
      "                               'side': 'SELL',\n",
      "                               'status': 'CANCELED',\n",
      "                               'stopPrice': '0.0000',\n",
      "                               'symbol': 'MANAUSDT',\n",
      "                               'time': 1706119853061,\n",
      "                               'timeInForce': 'GTC',\n",
      "                               'type': 'LIMIT',\n",
      "                               'updateTime': 1706119859003,\n",
      "                               'workingType': 'CONTRACT_PRICE'},\n",
      "                      'msg': ''},\n",
      " 'meta': {},\n",
      " 'request_param': {'newClientOrderId': '',\n",
      "                   'positionSide': 'LONG',\n",
      "                   'price': '0.4795',\n",
      "                   'quantity': '72',\n",
      "                   'side': 'SELL',\n",
      "                   'symbol': 'MANAUSDT',\n",
      "                   'timeInForce': 'GTC',\n",
      "                   'type': 'LIMIT'},\n",
      " 'set_order_result': {'code': 200,\n",
      "                      'data': {'avgPrice': '0.00',\n",
      "                               'clientOrderId': 'DHtoMg7NNgwYNJsQTjkaZw',\n",
      "                               'closePosition': False,\n",
      "                               'cumQty': '0',\n",
      "                               'cumQuote': '0.0000',\n",
      "                               'executedQty': '0',\n",
      "                               'goodTillDate': 0,\n",
      "                               'orderId': 10508471261,\n",
      "                               'origQty': '62',\n",
      "                               'origType': 'LIMIT',\n",
      "                               'positionSide': 'LONG',\n",
      "                               'price': '0.4795',\n",
      "                               'priceMatch': 'NONE',\n",
      "                               'priceProtect': False,\n",
      "                               'reduceOnly': True,\n",
      "                               'selfTradePreventionMode': 'NONE',\n",
      "                               'side': 'SELL',\n",
      "                               'status': 'NEW',\n",
      "                               'stopPrice': '0.0000',\n",
      "                               'symbol': 'MANAUSDT',\n",
      "                               'timeInForce': 'GTC',\n",
      "                               'type': 'LIMIT',\n",
      "                               'updateTime': 1706119853061,\n",
      "                               'workingType': 'CONTRACT_PRICE'},\n",
      "                      'msg': ''},\n",
      " 'status': 'CANCELED',\n",
      " 'symbol': 'MANAUSDT'}\n"
     ]
    }
   ],
   "source": [
    "# quantity = 'all' 表示全部可交易货币\n",
    "# 设置block、timeout、cancel\n",
    "close_limit5 = trade.close_limit(\n",
    "    symbol='MANAUSDT',  # 产品\n",
    "    marginType='ISOLATED',  # 保证金模式 ISOLATED: 逐仓 CROSSED: 全仓\n",
    "    positionSide='LONG',  # 持仓方向 LONG: 多单 SHORT: 空单\n",
    "    # closePrice=10,  # 平仓价格 closePrice 和 tpRate必须填写其中一个\n",
    "    tpRate=0.1,  # 挂单止盈率\n",
    "    quantity='all',  # 平仓数量\n",
    "    block=True,  # 是否堵塞\n",
    "    timeout=5,  # 等待订单成功的超时时间\n",
    "    delay=0.2,  # 检测订单状态的间隔 (秒)\n",
    "    cancel=True,  # 未完全成交是否取消订单\n",
    "    meta={},  # 向回调函数中传递的参数字典\n",
    ")\n",
    "\n",
    "pprint(close_limit5)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "520cbf94",
   "metadata": {},
   "source": [
    "## 6. 同步 堵塞 止盈价格平仓（卖出） 回调函数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "dff7df4f",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 执行成功回调\n",
    "def callback6(information):\n",
    "    print('callback')\n",
    "    pprint(information)\n",
    "\n",
    "\n",
    "# 执行错误回调\n",
    "def errorback6(information):\n",
    "    print('errorback')\n",
    "    pprint(information)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "d8c7804f",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "callback\n",
      "{'cancel_result': {'code': 200,\n",
      "                   'data': {'avgPrice': '0.00',\n",
      "                            'clientOrderId': '3bXrwep1mPcrn1N0Sn9TPh',\n",
      "                            'closePosition': False,\n",
      "                            'cumQty': '0',\n",
      "                            'cumQuote': '0.0000',\n",
      "                            'executedQty': '0',\n",
      "                            'goodTillDate': 0,\n",
      "                            'orderId': 10508473744,\n",
      "                            'origQty': '62',\n",
      "                            'origType': 'LIMIT',\n",
      "                            'positionSide': 'LONG',\n",
      "                            'price': '0.4793',\n",
      "                            'priceMatch': 'NONE',\n",
      "                            'priceProtect': False,\n",
      "                            'reduceOnly': True,\n",
      "                            'selfTradePreventionMode': 'NONE',\n",
      "                            'side': 'SELL',\n",
      "                            'status': 'CANCELED',\n",
      "                            'stopPrice': '0.0000',\n",
      "                            'symbol': 'MANAUSDT',\n",
      "                            'timeInForce': 'GTC',\n",
      "                            'type': 'LIMIT',\n",
      "                            'updateTime': 1706119887574,\n",
      "                            'workingType': 'CONTRACT_PRICE'},\n",
      "                   'msg': ''},\n",
      " 'error_result': None,\n",
      " 'func_param': {'block': True,\n",
      "                'callback': <function callback6 at 0x7f9e08f4f700>,\n",
      "                'cancel': True,\n",
      "                'closePrice': None,\n",
      "                'delay': 0.2,\n",
      "                'errorback': <function errorback6 at 0x7f9e08f4f820>,\n",
      "                'marginType': 'ISOLATED',\n",
      "                'meta': {},\n",
      "                'newClientOrderId': '',\n",
      "                'newThread': False,\n",
      "                'positionSide': 'LONG',\n",
      "                'quantity': 'all',\n",
      "                'symbol': 'MANAUSDT',\n",
      "                'timeout': 5,\n",
      "                'tpRate': 0.1},\n",
      " 'get_order_result': {'code': 200,\n",
      "                      'data': {'avgPrice': '0.00',\n",
      "                               'clientOrderId': '3bXrwep1mPcrn1N0Sn9TPh',\n",
      "                               'closePosition': False,\n",
      "                               'cumQuote': '0.0000',\n",
      "                               'executedQty': '0',\n",
      "                               'goodTillDate': 0,\n",
      "                               'orderId': 10508473744,\n",
      "                               'origQty': '62',\n",
      "                               'origType': 'LIMIT',\n",
      "                               'positionSide': 'LONG',\n",
      "                               'price': '0.4793',\n",
      "                               'priceMatch': 'NONE',\n",
      "                               'priceProtect': False,\n",
      "                               'reduceOnly': True,\n",
      "                               'selfTradePreventionMode': 'NONE',\n",
      "                               'side': 'SELL',\n",
      "                               'status': 'CANCELED',\n",
      "                               'stopPrice': '0.0000',\n",
      "                               'symbol': 'MANAUSDT',\n",
      "                               'time': 1706119881521,\n",
      "                               'timeInForce': 'GTC',\n",
      "                               'type': 'LIMIT',\n",
      "                               'updateTime': 1706119887574,\n",
      "                               'workingType': 'CONTRACT_PRICE'},\n",
      "                      'msg': ''},\n",
      " 'meta': {},\n",
      " 'request_param': {'newClientOrderId': '',\n",
      "                   'positionSide': 'LONG',\n",
      "                   'price': '0.4793',\n",
      "                   'quantity': '72',\n",
      "                   'side': 'SELL',\n",
      "                   'symbol': 'MANAUSDT',\n",
      "                   'timeInForce': 'GTC',\n",
      "                   'type': 'LIMIT'},\n",
      " 'set_order_result': {'code': 200,\n",
      "                      'data': {'avgPrice': '0.00',\n",
      "                               'clientOrderId': '3bXrwep1mPcrn1N0Sn9TPh',\n",
      "                               'closePosition': False,\n",
      "                               'cumQty': '0',\n",
      "                               'cumQuote': '0.0000',\n",
      "                               'executedQty': '0',\n",
      "                               'goodTillDate': 0,\n",
      "                               'orderId': 10508473744,\n",
      "                               'origQty': '62',\n",
      "                               'origType': 'LIMIT',\n",
      "                               'positionSide': 'LONG',\n",
      "                               'price': '0.4793',\n",
      "                               'priceMatch': 'NONE',\n",
      "                               'priceProtect': False,\n",
      "                               'reduceOnly': True,\n",
      "                               'selfTradePreventionMode': 'NONE',\n",
      "                               'side': 'SELL',\n",
      "                               'status': 'NEW',\n",
      "                               'stopPrice': '0.0000',\n",
      "                               'symbol': 'MANAUSDT',\n",
      "                               'timeInForce': 'GTC',\n",
      "                               'type': 'LIMIT',\n",
      "                               'updateTime': 1706119881521,\n",
      "                               'workingType': 'CONTRACT_PRICE'},\n",
      "                      'msg': ''},\n",
      " 'status': 'CANCELED',\n",
      " 'symbol': 'MANAUSDT'}\n"
     ]
    }
   ],
   "source": [
    "# 设置callback与errorback\n",
    "close_limit6 = trade.close_limit(\n",
    "    symbol='MANAUSDT',  # 产品\n",
    "    marginType='ISOLATED',  # 保证金模式 ISOLATED: 逐仓 CROSSED: 全仓\n",
    "    positionSide='LONG',  # 持仓方向 LONG: 多单 SHORT: 空单\n",
    "    # closePrice=1000,  # 平仓价格 closePrice 和 tpRate必须填写其中一个\n",
    "    tpRate=0.1,  # 挂单止盈率\n",
    "    quantity='all',  # 平仓数量\n",
    "    block=True,  # 是否堵塞\n",
    "    timeout=5,  # 等待订单成功的超时时间\n",
    "    delay=0.2,  # 检测订单状态的间隔 (秒)\n",
    "    cancel=True,  # 未完全成交是否取消订单\n",
    "    meta={},  # 向回调函数中传递的参数字典\n",
    "\n",
    "    callback=callback6,  # 开仓成功触发的回调函数\n",
    "    errorback=errorback6,  # 开仓失败触发的回调函数\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cdd2dc8c",
   "metadata": {},
   "source": [
    "## 7. 异步 堵塞 止盈价格平仓（卖出） 回调函数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "9ddccbac",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 执行成功回调\n",
    "def callback7(information):\n",
    "    print('thread callback')\n",
    "    pprint(information)\n",
    "\n",
    "\n",
    "# 执行错误回调\n",
    "def errorback7(information):\n",
    "    print('thread errorback')\n",
    "    pprint(information)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "71c44179",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<Thread(Thread-5, started 123145710747648)>\n",
      "------------------------------\n",
      "thread callback\n",
      "{'cancel_result': {'code': 200,\n",
      "                   'data': {'avgPrice': '0.00',\n",
      "                            'clientOrderId': 'AbS1hj1zG2VpCeEDvYweVH',\n",
      "                            'closePosition': False,\n",
      "                            'cumQty': '0',\n",
      "                            'cumQuote': '0.0000',\n",
      "                            'executedQty': '0',\n",
      "                            'goodTillDate': 0,\n",
      "                            'orderId': 10508475494,\n",
      "                            'origQty': '62',\n",
      "                            'origType': 'LIMIT',\n",
      "                            'positionSide': 'LONG',\n",
      "                            'price': '0.4794',\n",
      "                            'priceMatch': 'NONE',\n",
      "                            'priceProtect': False,\n",
      "                            'reduceOnly': True,\n",
      "                            'selfTradePreventionMode': 'NONE',\n",
      "                            'side': 'SELL',\n",
      "                            'status': 'CANCELED',\n",
      "                            'stopPrice': '0.0000',\n",
      "                            'symbol': 'MANAUSDT',\n",
      "                            'timeInForce': 'GTC',\n",
      "                            'type': 'LIMIT',\n",
      "                            'updateTime': 1706119907309,\n",
      "                            'workingType': 'CONTRACT_PRICE'},\n",
      "                   'msg': ''},\n",
      " 'error_result': None,\n",
      " 'func_param': {'block': True,\n",
      "                'callback': <function callback7 at 0x7f9e00d29040>,\n",
      "                'cancel': True,\n",
      "                'closePrice': None,\n",
      "                'delay': 0.2,\n",
      "                'errorback': <function errorback7 at 0x7f9e00d290d0>,\n",
      "                'marginType': 'ISOLATED',\n",
      "                'meta': {},\n",
      "                'newClientOrderId': '',\n",
      "                'newThread': True,\n",
      "                'positionSide': 'LONG',\n",
      "                'quantity': 'all',\n",
      "                'symbol': 'MANAUSDT',\n",
      "                'timeout': 5,\n",
      "                'tpRate': 0.1},\n",
      " 'get_order_result': {'code': 200,\n",
      "                      'data': {'avgPrice': '0.00',\n",
      "                               'clientOrderId': 'AbS1hj1zG2VpCeEDvYweVH',\n",
      "                               'closePosition': False,\n",
      "                               'cumQuote': '0.0000',\n",
      "                               'executedQty': '0',\n",
      "                               'goodTillDate': 0,\n",
      "                               'orderId': 10508475494,\n",
      "                               'origQty': '62',\n",
      "                               'origType': 'LIMIT',\n",
      "                               'positionSide': 'LONG',\n",
      "                               'price': '0.4794',\n",
      "                               'priceMatch': 'NONE',\n",
      "                               'priceProtect': False,\n",
      "                               'reduceOnly': True,\n",
      "                               'selfTradePreventionMode': 'NONE',\n",
      "                               'side': 'SELL',\n",
      "                               'status': 'CANCELED',\n",
      "                               'stopPrice': '0.0000',\n",
      "                               'symbol': 'MANAUSDT',\n",
      "                               'time': 1706119901273,\n",
      "                               'timeInForce': 'GTC',\n",
      "                               'type': 'LIMIT',\n",
      "                               'updateTime': 1706119907309,\n",
      "                               'workingType': 'CONTRACT_PRICE'},\n",
      "                      'msg': ''},\n",
      " 'meta': {},\n",
      " 'request_param': {'newClientOrderId': '',\n",
      "                   'positionSide': 'LONG',\n",
      "                   'price': '0.4794',\n",
      "                   'quantity': '72',\n",
      "                   'side': 'SELL',\n",
      "                   'symbol': 'MANAUSDT',\n",
      "                   'timeInForce': 'GTC',\n",
      "                   'type': 'LIMIT'},\n",
      " 'set_order_result': {'code': 200,\n",
      "                      'data': {'avgPrice': '0.00',\n",
      "                               'clientOrderId': 'AbS1hj1zG2VpCeEDvYweVH',\n",
      "                               'closePosition': False,\n",
      "                               'cumQty': '0',\n",
      "                               'cumQuote': '0.0000',\n",
      "                               'executedQty': '0',\n",
      "                               'goodTillDate': 0,\n",
      "                               'orderId': 10508475494,\n",
      "                               'origQty': '62',\n",
      "                               'origType': 'LIMIT',\n",
      "                               'positionSide': 'LONG',\n",
      "                               'price': '0.4794',\n",
      "                               'priceMatch': 'NONE',\n",
      "                               'priceProtect': False,\n",
      "                               'reduceOnly': True,\n",
      "                               'selfTradePreventionMode': 'NONE',\n",
      "                               'side': 'SELL',\n",
      "                               'status': 'NEW',\n",
      "                               'stopPrice': '0.0000',\n",
      "                               'symbol': 'MANAUSDT',\n",
      "                               'timeInForce': 'GTC',\n",
      "                               'type': 'LIMIT',\n",
      "                               'updateTime': 1706119901273,\n",
      "                               'workingType': 'CONTRACT_PRICE'},\n",
      "                      'msg': ''},\n",
      " 'status': 'CANCELED',\n",
      " 'symbol': 'MANAUSDT'}\n"
     ]
    }
   ],
   "source": [
    "# 设置newThread=True\n",
    "close_limit7 = trade.close_limit(\n",
    "    symbol='MANAUSDT',  # 产品\n",
    "    marginType='ISOLATED',  # 保证金模式 ISOLATED: 逐仓 CROSSED: 全仓\n",
    "    positionSide='LONG',  # 持仓方向 LONG: 多单 SHORT: 空单\n",
    "    # closePrice=1000,  # 平仓价格 closePrice 和 tpRate必须填写其中一个\n",
    "    tpRate=0.1,  # 挂单止盈率\n",
    "    quantity='all',  # 平仓数量\n",
    "    block=True,  # 是否堵塞\n",
    "    timeout=5,  # 等待订单成功的超时时间\n",
    "    delay=0.2,  # 检测订单状态的间隔 (秒)\n",
    "    cancel=True,  # 未完全成交是否取消订单\n",
    "    callback=callback7,  # 开仓成功触发的回调函数\n",
    "    errorback=errorback7,  # 开仓失败触发的回调函数\n",
    "    meta={},  # 向回调函数中传递的参数字典\n",
    "\n",
    "    newThread=True,  # 是否开启一个新的线程维护这个订单\n",
    ")\n",
    "print(close_limit7)\n",
    "print('-' * 30)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
